import request from './request' // 导入封装的请求方法

// 支付接口类型定义
export interface PaymentRequest { // 支付请求接口
  userId: number // 用户ID
  orderId: number // 订单ID
  paymentMethod: string // 支付方式
}

export interface PaymentResponse { // 支付响应接口
  success: boolean // 是否成功
  message: string // 消息
  paymentInfo?: { // 支付信息
    qrCodeUrl: string // 二维码URL
    paymentUrl: string // 支付URL
    orderNumber: string // 订单号
    amount: number // 支付金额
    paymentMethod: string // 支付方式
    expireTime: string // 过期时间
  }
  orderId?: number // 订单ID
  paymentMethod?: string // 支付方式
  amount?: number // 支付金额
}

export interface PaymentStatusResponse { // 支付状态响应接口
  success: boolean // 是否成功
  message: string // 消息
  paid?: boolean // 是否已支付
  order?: any // 订单信息
  paidAt?: string // 支付时间
}

export interface PaymentMethod { // 支付方式接口
  [key: string]: string // 支付方式映射
}

// 处理支付请求（生成支付二维码）
export const processPayment = (userId: number, orderId: number, paymentMethod: string) => {
  // 发送POST请求到后端支付接口
  return request({
    url: '/payment/process', // 后端支付接口地址
    method: 'post', // 请求方法
    params: { userId, orderId, paymentMethod } // 请求参数
  })
}

// 检查支付状态
export const checkPaymentStatus = (userId: number, orderId: number) => {
  // 发送GET请求到后端检查支付状态接口
  return request({
    url: '/payment/status', // 后端支付状态接口地址
    method: 'get', // 请求方法
    params: { userId, orderId } // 请求参数
  })
}

// 获取支付方式列表
export const getPaymentMethods = () => {
  // 发送GET请求到后端获取支付方式列表
  return request({
    url: '/payment/methods', // 后端支付方式接口地址
    method: 'get' // 请求方法
  })
}

// 根据购物车创建订单
export const createOrderFromCart = (userId: number, orderData: {
  totalAmount: number // 总金额
  receiverName: string // 收货人姓名
  receiverPhone: string // 收货人电话
  receiverAddress: string // 收货地址
  paymentMethod: string // 支付方式
  remark?: string // 备注
  items?: Array<{ // 购物车商品列表
    productId: number // 商品ID
    productName: string // 商品名称
    productImage?: string // 商品图片
    price: number // 商品价格
    quantity: number // 商品数量
    subtotal: number // 小计
  }>
}) => {
  // 发送POST请求到后端创建订单接口
  return request({
    url: '/orders/create-from-cart', // 后端创建订单接口地址
    method: 'post', // 请求方法
    params: { userId }, // 用户ID参数
    data: orderData // 订单数据
  })
} 